iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 22
0
Modern Web

慢慢帶你了解Flask系列 第 22

慢慢帶你了解Flask - Day22 Secret Talk(4):註冊與驗證+定時任務

  • 分享至 

  • xImage
  •  

大家好,我是長風青雲。今天是第二十二天,今天我們來快點將註冊解決完~
但我還是先說說我曾作過的事情。

走歪路

不知道大家有沒有聽過celery?
Celery是一個使用python開發的分布式異步任務對列,你可以看作他是一個類似於threading的東西就是了。
我原先想要讓celery為我們辦到兩件事情。

  1. 異步送信
  2. 每天晚上12:00進行超過24hr的未驗證註冊者清空
    但經過查詢定時任務比較
    我發現我們的Flask主打的就是輕量級,那我加入Celery不是智障行為嗎?
    而且最後思來想去,發覺不對。
    每天清unconfirm這個行為明明就不應該是Flask這個網頁框架去做!他明明就只有資料庫的運作而已啊!
    所以最後我還是沒有使用異步送信,並且定期清資料庫的部分就交由另外一個py檔進行吧。

清空unconfirm

看過剛剛查詢定時任務比較後,我決定使用的不是他最推的APScheduler,而是Schedule。簡單輕便好用,因為時間差不多已經接近午夜十二點,所以我們就先來看看實際影片吧~

觀看影片的時候我的解釋都放出來了~
那我就將程式碼附上囉~

import schedule
import time
import mysql.connector


db=mysql.connector.connect(host = "127.0.0.1",user = "root",password = "root",database = "ST",auth_plugin='mysql_native_password')
cursor=db.cursor()

def remove_unconfirm():
	command="SELECT * FROM unconfirm"
	cursor.execute(command)
	result = cursor.fetchall()
	for row in result:
		if time.time()-float(row[5])>86400:
			command="DELETE FROM unconfirm WHERE account='%s'" % row[0]
			cursor.execute(command)
	db.commit()

schedule.every().day.at("00:00").do(remove_unconfirm)
while 1:
	schedule.run_pending()

成功驗證影片

因為我不想付錢,所以貌似這個軟體最長只能錄三分鐘。所以把成功驗證的樣子附上來www。

那我們成功後明天就進入信件傳遞的部分吧~


上一篇
慢慢帶你了解Flask - Day21 Secret Talk(3):註冊與驗證信發送
下一篇
慢慢帶你了解Flask - Day23 SecretTalk(5):寄信送信(加密解密)
系列文
慢慢帶你了解Flask30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言